/**
 * @file         bsc_netlink_enum.h
 * @brief        NetLink组件全部 枚举值
 * @note         对外公布
 * @author       Jpz(jinpuzhao@hopechart.com, 靳普诏)
 * @data         2022-9-6
 * @version      1.0
 *
 * @par          修改日志
 * <table>
 * <tr><th>Date        <th>Version               <th>Author          <th>Description
 * <tr><td>2022-9-6    <td>1.0                   <td>Jpz             <td>创建初始版本
 * @copyright    杭州鸿泉物联网技术股份有限公司
 */


#ifndef _BSC_NETLINK_ENUM_H_
#define _BSC_NETLINK_ENUM_H_

#include "hcc/hcc_error_code_mid_bsc_netlink.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * 最大联网模块支持个数
 */
enum TBsNetlinkConstTag
{
    kBsNetlinkModemIdx4G    = 0,
    
#ifdef __AT_FC4XX_STD__
    kBsNetlinkModemIdxWifi    = 1,
#endif

    kBsNetlinkModemCount,
};
typedef enum TBsNetlinkConstTag TBsNetlinkConst;


enum TBsNetlinkModemAttrIdTag
{
    // 公共属性
    kBsNetlinkModemAttrIdChipIsPrepare       = 0, ///< 用于芯片打开的准备事件的判断 bool (组件只读)（用户仅定义） 
    kBsNetlinkModemAttrIdRttEnable           = 1, ///< Rtt数据打印 U32 （组件只读）（用户读写）
    kBsNetlinkModemAttrIdTermBaudrate        = 2, ///< 终端波特率 U32 （组件读写）（用户读写）
    kBsNetlinkModemAttrIdAirplaneMode        = 3, ///< 飞行模式 Bool  （组件读写）（用户读写）
    kBsNetlinkModemAttrIdSleepMode           = 4,    ///< 休眠模式 Bool  （组件读写）（用户读写）
    
    // 4g模块属性
    kBsNetlinkModemAttrIdGprsRegStatus       = 10, ///< 注册状态 u8 （组件只写）（用户只读） 
    kBsNetlinkModemAttrIdGprsSimCardType     = 11, ///< SIM卡类型 u8 （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsNetCsq          = 12, ///< CSQ u8 （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsNetMnc          = 13, ///< 网络运营商 str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsModuleStatus    = 14, ///< 模块上电状态u8 （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsSimCardStatus   = 15, ///< SIM卡状态 u8 （组件只写）（用户只读）
    
    kBsNetlinkModemAttrIdGprsNetMode         = 16, ///< 网络模式 u8 （组件只写）（用户读写） 0 自动(LTE/WCDMA/GSM); 1 仅2G; 2 仅3G; 3 仅4G; --> at+cnmp?
    kBsNetlinkModemAttrIdGprsNetLac          = 17, ///< 注册位置 u16 （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsNetCid          = 18, ///< 基站编号 u16 （组件只写）（用户只读）
    
    kBsNetlinkModemAttrIdGprsModuleHardVer   = 19, ///< 硬件版本号 str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsModuleSoftVer   = 20, ///< 软件版本信息 str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsModuleModel     = 21, ///< 模块型号 str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsModuleImei      = 22, ///< IMEI str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsSimCardIccid    = 23, ///< ICCID str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsSimCardImsi     = 24, ///< IMSI str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdGprsSimInterval     = 25, ///< Sim卡内部检测间隔(单位: 秒，默认值为: 30) u32（组件只写）（用户读写）
    kBsNetlinkModemAttrIdGprsSimCardPhoneNum = 26, ///< 手机号 str 组件只写）（用户只读）
    kBsNetlinkModemAttrIdChipInfo            = 27, ///< 移动模块的制造商信息 str （组件只写）（用户只读）
    
    // <2024-10-08> Jpz : 平台信息. 受各自项目平台限制, 外部实现
    kBsNetlinkModemAttrIdGprsNetCGATT        = 28, ///< 网络附着状态 u8 （组件只写）（用户读写） 0未附着; 1已附着 : --> AT+CGATT?   
    kBsNetlinkModemAttrIdGprsNetCNBP         = 29, ///< 网络频道 bin （组件只写）（用户读写） 32字节(526位)BAND信息
    kBsNetlinkModemAttrIdUESysInfo           = 30, ///< 移动模块的UE系统信息 str （组件只写）（用户只读）
    kBsNetlinkModemAttrIdCGACT               = 31, ///< 移动模块APN激活状态 u8 .（组件只写）（用户只读）. bit[1~6]表示cid[1~6], 0表示未激活, 1表示激活. (bit0 0属性值无效, 1属性值有效) 

#ifdef __AT_EX800G_OPEN__
    kBsNetlinkModemAttrIdGprsModuleSn        = 32, ///< SN号 str 组件只写）（用户只读）
#endif
    
    // ppp 相关属性
    kBsNetlinkModemAttrIdApUser            = 100, ///< 接入点的用户名 str （组件读写）（用户读写）
    kBsNetlinkModemAttrIdApName            = 101, ///< 接入点的名称 str （组件读写）（用户读写）
    kBsNetlinkModemAttrIdApPassword        = 102, ///< 接入点的密码 str （组件读写）（用户读写）
};
typedef enum TBsNetlinkModemAttrIdTag TBsNetlinkModemAttrId;


#ifdef __cplusplus
}  /* extern "C" { */
#endif

#endif /* _BSC_NETLINK_ENUM_H_ */
